using BepuUtilities;
using System.Runtime.CompilerServices;

namespace BepuPhysics
{
    /// <summary>
    /// 枚举附着到激活约束的实体,并从所有连接的实体约束参照列表中删除约束的控制柄。
    /// </summary>
    struct ConstraintGraphRemovalEnumerator : IForEach<int>
    {
        internal Bodies bodies;
        internal ConstraintHandle constraintHandle;
        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public void LoopBody(int bodyIndex)
        {
            // 请注意,这只在活动集中显示。不支持直接删除非活动对象-删除并添加激活所有涉及的孤岛。
            bodies.RemoveConstraintReference(bodyIndex, constraintHandle);
        }
    }

}
